#pragma once
/*
This class defines the player character
*/
#include <Windows.h>
#include <stdio.h>
#include "Entity.h"

enum DIRECTION	//Human readability assistance for character movement
{
	NO_MOVE = 0,
	NORTH,
	SOUTH,
	EAST,
	WEST,
	UP,
	DOWN,
	TOTAL_DIRECTIONS
};


class Character : public Entity
{
private:
	int m_moveIntent;		//The direction the character intends on moving in the update phase
public:
	//Constructors/Destructors
	Character();
	~Character();
	//Game loop methods
	void handleInput(int a_input);	//@param:  The latest keyboard input
	void update();
	void draw();
	void redraw();	//A request to redraw the character.
	//Other methods
	void move(DIRECTION a_direction, int a_distance);	//@param1:  The direction to move.  @param2:  The distance to move
	void place(int a_x, int a_y);
	void spawn();										//Randomly places the character in a random, VALID (ie. Not in a wall) space
};